package com.cl.photozoom;

import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.RectF;
import android.view.GestureDetector;
import android.view.View;
import android.widget.ImageView;


public interface IPhotoView {

    float DEFAULT_MAX_SCALE = 3.0f;
    
    float DEFAULT_MID_SCALE = 1.75f;
    
    float DEFAULT_MIN_SCALE = 1.0f;
    
    int DEFAULT_ZOOM_DURATION = 200;
 
    boolean canZoom();
 
    RectF getDisplayRect();
 
    boolean setDisplayMatrix(Matrix finalMatrix);
 
    void getDisplayMatrix(Matrix matrix);
 
    float getMinimumScale();
 
    float getMediumScale();
 
    float getMaximumScale();
 
    float getScale();
 
    ImageView.ScaleType getScaleType();
 
    void setAllowParentInterceptOnEdge(boolean allow);
 
    void setMinimumScale(float minimumScale);
 
    void setMediumScale(float mediumScale);
 
    void setMaximumScale(float maximumScale);
 
    void setScaleLevels(float minimumScale, float mediumScale, float maximumScale);
 
    void setOnLongClickListener(View.OnLongClickListener listener);
 
    void setOnMatrixChangeListener(PhotoViewAttacher.OnMatrixChangedListener listener);
 
    void setOnPhotoTapListener(PhotoViewAttacher.OnPhotoTapListener listener);
 
    void setOnViewTapListener(PhotoViewAttacher.OnViewTapListener listener);
 
    void setRotationTo(float rotationDegree);
 
    void setRotationBy(float rotationDegree);
 
    void setScale(float scale);
 
    void setScale(float scale, boolean animate);
 
    void setScale(float scale, float focalX, float focalY, boolean animate);
 
    void setScaleType(ImageView.ScaleType scaleType);
 
    void setZoomable(boolean zoomable);
 
    Bitmap getVisibleRectangleBitmap();
 
    void setZoomTransitionDuration(int milliseconds);
 
    IPhotoView getIPhotoViewImplementation();
 
    void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener newOnDoubleTapListener);
 
    void setOnScaleChangeListener(PhotoViewAttacher.OnScaleChangeListener onScaleChangeListener);
 
    void setOnSingleFlingListener(PhotoViewAttacher.OnSingleFlingListener onSingleFlingListener);
}
